Интерфейс
Объявлениеinterface IUser
{
   // Свойство
   id: number;

   //Nullable свойство
   name: string | null;

   //Необязательное свойство (тип | undefined)
   property1?: string;

   // Метод       
   sayHello(name: string): void;
}
Реализация через классclass User implements IUser
{
    id: number;
    name: string;

    constructor(
      userId: number,
      userName: string
    ) {

       this.id = userId;
       this.name = userName;

    }
    sayHello(name: string): void {
        console.log("Hello " + name);
    }
}

let tom : IUser = new User(1, "Tom");
Реализация через объектlet employee: IUser = {     
    id: 1,
    name: "Tom"
}
 Поддерживаются readonly свойства.
Поддерживаются модификаторы доступа свойств и методов.
Поддерживается реализация get и set методов свойства.
Поддерживаются статичные элементы.
Работа с типами
<Тип> 
as 
instanceOf 
Утиная типизация 
Теги: